package com.itheima.d5_xml;

import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;

import java.util.ArrayList;
import java.util.List;

public class Demo03 {
    public static void main(String[] args) throws Exception {
        /**
         * 需求：
         *      使用DOM4J解析contacts.xml文件，将解析到的数据封装到联系人对象中
         *      并将联系人对象存储到ArrayList集合中，最后遍历集合
         */
        //1.创建SAXReader解析器对象，调用read()方法获取对应xml文件的Document对象
        SAXReader reader = new SAXReader();
        Document doc = reader.read("day11-thread&single&enum&xml\\resources\\xml\\contacts.xml");

        //2.创建ArrayList集合，用于存储解析出来的Contact对象
        ArrayList<Contact> list = new ArrayList<>();

        //3.获取根标签对象，再获取它的所有名字是"contact"的子标签对象集合
        Element rootElement = doc.getRootElement();
        List<Element> contactList = rootElement.elements("contact");

        //4.遍历集合，拿出每一个Contact标签对象，拿到id、name、gender、email数据
        for (Element contactElement : contactList) {
            //获取id属性的值
            String id = contactElement.attributeValue("id");

            //获取contactElement的name子标签的文本
            String name = contactElement.elementText("name");
            //其他也一样
            String gender = contactElement.elementText("gender");
            String email = contactElement.elementText("email");

            //5.创建Contact对象，存入集合
            Contact contact = new Contact(id, name, gender, email);
            list.add(contact);
        }

        //6.遍历集合，打印出每一个联系人数据
        for (Contact contact : list) {
            System.out.println(contact);
        }
    }
}
